package com.ruoyi.system.mapper;

import com.ruoyi.system.domain.vo.DesignStatisticsQueryVO;
import com.ruoyi.system.domain.vo.DesignStatisticsVO;
import org.apache.ibatis.annotations.Param;

import java.math.BigDecimal;
import java.util.List;
import java.util.Map;

public interface DesignStatisticsMapper {

    /**
     * 获取总设计项目数
     */
    Integer selectTotalDesignCount(@Param("query") DesignStatisticsQueryVO query);

    /**
     * 获取平均方案耗时
     */
    BigDecimal selectAvgDesignDays(@Param("query") DesignStatisticsQueryVO query);

    /**
     * 获取总出图量
     */
    Integer selectTotalImageCount(@Param("query") DesignStatisticsQueryVO query);

    /**
     * 获取素材总使用次数和项目总数（用于计算平均使用率）
     */
    Map<String, Long> selectMaterialUsageAndProjectCount(@Param("query") DesignStatisticsQueryVO query);

    /**
     * 获取设计师耗时统计
     */
    List<DesignStatisticsVO.DesignerTimeStatsVO> selectDesignerTimeStats(@Param("query") DesignStatisticsQueryVO query);

    /**
     * 获取设计师出图量统计
     */
    List<Map<String, Object>> selectDesignerImageStats(@Param("query") DesignStatisticsQueryVO query);

    /**
     * 获取空间维度出图量统计
     */
    List<Map<String, Object>> selectSpaceImageStats(@Param("query") DesignStatisticsQueryVO query);

    /**
     * 获取素材使用次数统计（按时间维度）
     */
    List<Map<String, Object>> selectMaterialUsageByTime(@Param("query") DesignStatisticsQueryVO query);
}